home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The X-Philes (2nd Revision)
/
The X-Philes Number 1 (1995).iso
/
xphiles
/
hp48hor2
/
makerom.doc
< prev
next >
Wrap
Text File
|
1995-03-31
|
3KB
|
104 lines
(Comp.sys.hp48)
Item: 245 by mheiskan@hut.fi [Mika Heiskanen]
Subj: MAKEROM.EXE bugged
Date: 10 Mar 1993
[Note: MAKEROM is on Goodies Disk #4. If you use the HP48-based
library builders instead, like LIB.LIB on Goodies Disk #8, then you
don't have to worry about the bug in MAKEROM. -jkh-]
After some experimentation & studying of MAKEROM.EXE outputs seems like
MAKEROM.EXE is bugged as far as these words are concerned:
NAME <label>
sNAME <label> <string>
tNAME <label> <string>
From rplcomp.doc:
> NAME - the global label and hash name are the same.
> xNAME - the global label is the hash name with 'x'
> prefixed.
> sNAME - the global label and hash entry are independently
> specified.
> tNAME - specifies that an additional hash name belongs to
> the given label.
RPLCOMP handles these words correctly and SASM also outputs correct info to
the .ext file, but MAKEROM does not use the .ext file correctly. This is what
a small test library dumped to the .ext file:
>X4D1 @ xROMID 4D1
>4TEST HASH @ sNAME TEST HASH
>4xBLAH BLAH @ xNAME BLAH
>3HUH HUH @ NAME HUH
>6HUH HUHHUH @ tNAME HUH HUHHUH
>0NULLTEST NULLTEST @ NULLNAME NULLTEST (+ EXTERNAL NULLTEST)
Clearly 1st column is the type of the data described on the line followed
immediately by the label, then possible hash name.
sNAME, xNAME and NAME all output this to the code:
> CON(6) =~label @ library and command numbers
>=label
(xNAME outputs 'xlabel' instead of label)
So far quite obvious, but the hash/link table produced by MAKEROM doesn't look
very good:
>oBleN3
> CON(2) #3
> NIBASC \HUH\
> CON(3) 2
>oBleN4
> CON(2) #4
> NIBASC \BLAH\
> CON(3) 1
> CON(2) #4
> NIBASC \HASH\
> CON(3) 0
>oBleN6
> CON(2) #6
> NIBASC \HUHHUH\
> CON(3) 3 <--- should be 2
tNAME HUH HUHHUH has created a new romptr instead of assigning a new hashname
for HUH.
Troubles continue:
>=~xHASH EQU #4D1+4096*0 @ Should be =~TEST
> CON(5) (*)-(oBleN4)-13
>=~xBLAH EQU #4D1+4096*1
> CON(5) (*)-(oBleN4)-0
>=~xHUH EQU #4D1+4096*2 @ Should be =~HUH
> CON(5) (*)-(oBleN3)-0
>=~xHUHHUH EQU #4D1+4096*3 @ Shouldn't be here
> CON(5) (*)-(oBleN6)-0 @ Shouldn't be here
MAKEROM has used the hash name instead of the label (.ext file). Also 'x' has
been forced to the name (Try "emacs makerom.exe")
And even more:
>=LinK4D1
> CON(5) =DOHSTR
> REL(5) enDLink
> REL(5) =xHASH @ Should be =TEST
> REL(5) =xBLAH
> REL(5) =xHUH @ Should be =HUH
> REL(5) =xHUHHUH @ Shouldn't be here
> REL(5) =NULLTEST
>enDLink
Again hash name is used and 'x' forced. (And the romptr 'created' by tNAME is
referred in the link table too.)
--> sNAME, tNAME, NAME are unusable with MAKEROM.EXE
Any volunteers to make a fix? HP?
--
---> Mika Heiskanen, mheiskan@vipunen.hut.fi